/******************************************************************************
 *
 *	Fichier:			common.h
 *
 *	Fonction:		implémente des fonctions, des structures etc... qui n'ont besoin d'aucune 
 *  					dépandance. Utilisé par tous les fichiers.
 *
 *	Auteur:		   Tristan Stérin
 *
 *	Copyright:		Copyright (c) 2010 <whomever>
 *						Tous droits réservés.
 *
 *	Source:			Original.
 *
 *	Notes:			
 *
 *	
 ******************************************************************************/

#ifndef DEF_COMMON_HEADER
#define DEF_COMMON_HEADER

#include <cstdio>
#include <cstdlib>
#include <string.h>
#include <string>

#include <SDL/SDL.h>
#include <SDL_image/SDL_image.h>
#include "SDL_rotozoom.h"

/******************************
Définition de la version de dev
*******************************/
#define DEV_VERSION 1 

/*******************************************************************
Définition du fullscreen
Définition de la taille de l'écran sans fullscreen.
Quelques couleurs essentiels, ainsi qu'une structure les définissant 
utilisation d'un namespace pour éviter les confusions entre ce qui
appartient à la SDL et le reste.
Ces couleurs respecte le standard HTML/CSS.
Source pour les valeurs RGB : http://www.lehtml.com/scripts/memoire/csscolor.htm
********************************************************************/

namespace ZeldaCommon
{
	/************************
	Définition du fullscreen
	*************************/
	const int FULLSCREEN = 0;

	const int LARGEUR = 800;//Largeur par défaut
	const int HAUTEUR = 600;//Hauteur par défaut
	
	struct RGBCouleurDef
	{
		RGBCouleurDef() {}
		RGBCouleurDef(int R, int G, int B) : R(R), G(G), B(B) {}
		
		int R;
		int G;
		int B;
	};
	
	const RGBCouleurDef ROUGE(255, 0, 0);
	const RGBCouleurDef VERT(0, 128, 128);
	const RGBCouleurDef BLEU(0, 0, 255);
	
	const RGBCouleurDef BLACK(0, 0, 0);
	const RGBCouleurDef WHITE(355, 255, 255);

}

const int TAILLE_MAX_NOMS = 26+1;//Taille maximale pour un nom de fichiers (26 lettres + \0)
const int TAILLE_MAX_MESSAGES = 500+1;//Taille mawimale d'un message

/*********************************************************************************
Fonction utile quand il faudra définir les "avantages" possédant le version de dev
(Log de debug en console, editeur de map...)
**********************************************************************************/

bool isDevVersion()
{
	if(DEV_VERSION == 1)
		return true;

	return false;
}

/*********************************************************************************
Permet à toutes les classes du jeu de savoir si le fullscreen est activé sans
aovoir à passer par le define.
**********************************************************************************/

bool isFullscreen() 
{
	if(ZeldaCommon::FULLSCREEN == 1)
		return true;
	
	return false;
}
	
#endif